//配置axios的全局基本路径
axios.defaults.baseURL='http://localhost:8080/'
//全局属性配置，在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios


//1 使用axios前置拦截器，让所有的请求都携带token
axios.interceptors.request.use(res=>{
    let token = localStorage.getItem("token");
    if(token){
        //携带token到请求头
        res.headers["token"] = token;
    }
    return res;
},error => {
    Promise.reject(error)
})


//2 使用axios后置拦截器，处理没有登录请求
axios.interceptors.response.use(res => {
    if ("noLogin" === res.data.message) {//后端响应的是没有登录的信息
        localStorage.removeItem("token");
        localStorage.removeItem("loginInfo");
        //跳转到登陆页面
        location.href="login.html"
    }
    return res;
},error => {
    Promise.reject(error)
})


// 3.axios的前端拦截器/静态资源拦截器
//自己写js代码
let url = location.href;
//url.indexOf("login.html")==-1   ->  这个url字符串中没有login.html  ->  访问的不是登录页面
if(url.indexOf("login.html")==-1
    && url.indexOf("register.html")==-1
    && url.indexOf("index.html")==-1
    && url.indexOf("callback.html")==-1
    && url.indexOf("binder.html")==-1){
    //访问的是其他页面
    //验证你登录没有
    let loginInfo = localStorage.getItem("loginInfo");
    if(!loginInfo){
        //如果loginInfo没有值 - 跳转到登录页面
        location.href="login.html";
    }
}


//将地址栏中的参数解析成一个json对象
function parseUrlParams2Obj(path){
    let data = path.substring(path.indexOf("?")+1);  //code=001kNSFa1i6BmC0XPbIa1E0CpC2kNSFA&state=1
    let dataArr = data.split("&");// [code=001kNSFa1i6BmC0XPbIa1E0CpC2kNSFA,state=1];
    //{"code":"001kNSFa1i6BmC0XPbIa1E0CpC2kNSFA","state":1}
    let jsonObj = {};
    for(var i = 0;i<dataArr.length;i++){
        let dataTem = dataArr[i]; //code=001kNSFa1i6BmC0XPbIa1E0CpC2kNSFA
        let key = dataTem.split("=")[0];
        let value = dataTem.split("=")[1];
        jsonObj[key] = value;
    }
    return jsonObj;
}
